fix: instantiate recon-silly-ation from the RSR template - #19
Merged
Conversation
The repo was scaffolded from rsr-template-repo but never instantiated:
literal {{PLACEHOLDER}} tokens survived throughout, including in the .zig
FFI sources, so the Zig genuinely did not parse. This substitutes real
identity (recon-silly-ation, hyperpolymath, MPL-2.0/CC-BY-SA-4.0, WASM
document reconciliation via the ReconForth VM per reposystem's tool
registry) across ~85 files, and fixes real bugs the disease was masking:
- .github/settings.yml had name: "{{REPO}}" — an unsubstituted probot
self-rename landmine — now a safe no-op self-affirmation.
- src/interface/ffi/src/main.zig had {{project}}_init() etc: invalid Zig.
Fixed identifiers, plus two real bugs the placeholders were hiding:
an opaque type declared with fields (illegal in Zig) and
std.heap.c_allocator used without linking libc. Both fixed for real.
- src/interface/ffi/build.zig defined no build/test steps at all
(`zig build test` failed with "no step named 'test'"). Added a real
library + test step wiring up both main.zig's unit tests and
test/integration_test.zig.
- Justfile/build/just/*.just: replaced `echo "TODO"`/fake-success stubs
with real commands this repo can back (zig build, zig fmt, zig build
test, idris2 --typecheck), and deleted recipes with nothing to back
them (run, run-verbose, bench, readiness, test-smoke — this is an
FFI/WASM library, not a standalone executable, and no bench/readiness
suites exist).
- .machine_readable/contractiles/Justfile was a stale, diverged copy of
the root Justfile even though the repo's own Dustfile hygiene check
requires it be a hardlink ("Only one Justfile"); re-linked for real.
- Several .machine_readable/contractiles/*.a2ml files (Bustfile,
Intentfile, Mustfile, Trustfile) still described themselves as *being*
rsr-template-repo, "the canonical template" — fixed self-identity and
dropped template-only failure modes/checks that don't apply to an
instantiated consumer repo (including one permanently-broken check that
grepped for a marker string that was never present).
- CLADE.a2ml carried the template's own UUID verbatim, which would have
collided with it in the gv-clade-index registry; regenerated.
Verified with the real toolchain (zig 0.16.0):
zig fmt --check src/interface/ffi -> exit 0
zig build -> exit 0
zig build test -> exit 0 (4/4 tests pass)
Removed template-only machinery that no longer applies now the repo is
instantiated: scripts/validate-template.sh, tests/e2e/template_instantiation_test.sh,
benches/template_bench.sh. Confirmed no workflow, Justfile, or script
invoked any of the three, so no workflow surgery was needed.
Left untouched, on purpose: docs-template/, machine-readable-design/,
docs/decisions/0000-template.adoc, docs/governance/CRG-AUDIT-TEMPLATE.adoc,
docs/governance/TEMPLATE-STANDARDS-AUDIT.adoc, docs/RSR_OUTLINE.adoc, and
the K9 component templates under .machine_readable/self-validating/ — all
of these are intentional reusable seed kits or per-instance templates
(their own text says "copy this file and customize"), not this repo's own
identity. Also untouched: flake.nix, .tool-versions, .editorconfig,
.gitattributes, .gitignore, per instructions.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
hyperpolymath
marked this pull request as ready for review
July 27, 2026 18:25
5 tasks
hyperpolymath
added a commit
that referenced
this pull request
Jul 27, 2026
…shed instantiation (#21) ## Summary Fixes the three CI blockers keeping the estate's PR queue stuck, as diagnosed for this repo (full per-blocker root-cause detail is in the commit message): - **lint-workflows** (unpinned action, `rsr-antipattern.yml:15`): the referenced reusable (`rsr-antipattern-reusable.yml`) has never existed on `hyperpolymath/standards`. It's dead, retired estate-wide per `docs/audits/audit-reusables-convergence-2026-05-26.adoc`, and superseded by `governance.yml` (already present here). Deleted rather than pinned to an unresolvable reference. - **Validate K9 contracts** (8 errors / 10 files): 6 were a shared `k9-ecosystem/validate-action` scope bug, fixed at the source in hyperpolymath/k9-ecosystem#21 (with a local stopgap override here). The remaining 2 were a genuine `container/deploy.k9.ncl` defect (missing `K9!` line, pedigree hidden behind a let-binding) — fixed directly. - **openssf-compliance**: failed on TWO files. `ECOSYSTEM.a2ml`'s `notes` field documented the `{{PLACEHOLDER}}` mechanism using the literal token shape (reworded). `STATE.a2ml` was still, despite PR #19's title, substantively the raw template — `project = "rsr-template-repo"`, a "STATE file for rsr-template-repo itself" preamble, and template-authoring milestones/notes. Properly instantiated for recon-silly-ation from its own README/manifest. ## Test plan - [x] `bash validate-action/validate-k9.sh` (k9-ecosystem, with the new paths-ignore) → `Errors: 0` (was 8) - [x] `grep -rnE '^[[:space:]]+uses:' .github/workflows/ | grep -v '@[a-f0-9]{40}'` → empty (was 1 match) - [x] Reproduced the openssf-compliance placeholder-check step locally → 0 files flagged (was 2) - [x] `python3 -c "import tomllib; tomllib.load(...)"` on the edited `.a2ml` files → parses clean - [x] All touched/remaining workflow YAML parses via `yaml.safe_load` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
This repo was scaffolded from
rsr-template-repoand never instantiated: literal{{PLACEHOLDER}}tokens survived throughout, including in the.zigFFI sources, so the Zig genuinely did not parse.Real identity substituted across ~85 files:
recon-silly-ation/recon_silly_ation(identifier form)hyperpolymath/github.comreposystem/config/tools.ncl's registration of this repo (role = 'interop,actions = ["reconcile"]), the only authoritative description of this repo's purpose found anywhere in the estate.Bugs the disease was masking
.github/settings.ymlhadname: "{{REPO}}"— an unsubstituted probot self-rename landmine. Now a safe no-op self-affirmation.src/interface/ffi/src/main.zig: fixed{{project}}_init()etc. to real identifiers, plus two real bugs the placeholders were hiding — anopaquetype declared with fields (illegal in Zig) andstd.heap.c_allocatorused without linking libc. Both fixed for real (opaque/impl split +page_allocator).src/interface/ffi/build.zigdefined no build/test steps at all —zig build testfailed withno step named 'test'. Added a real static-library step plus ateststep wiring up bothmain.zig's unit tests andtest/integration_test.zig.Justfile/build/just/*.just: replacedecho "TODO"/ fake-success stubs with real commands this repo can back (zig build,zig fmt,zig build test,idris2 --typecheck); deleted recipes with nothing to back them (run,run-verbose,bench,readiness,test-smoke— this is an FFI/WASM library, not a standalone executable, and no bench/readiness suites exist)..machine_readable/contractiles/Justfilewas a stale, diverged copy of the root Justfile even though the repo's own Dustfile hygiene check requires it be a hardlink ("Only one Justfile"). Re-linked for real..machine_readable/contractiles/*.a2mlfiles (Bustfile, Intentfile, Mustfile, Trustfile) still described themselves as beingrsr-template-repo, "the canonical template" — fixed self-identity and dropped template-only failure modes/checks that don't apply to an instantiated consumer repo (including one permanently-broken check grepping for a marker string that was never present).CLADE.a2mlcarried the template's own UUID verbatim, which would have collided with it in the gv-clade-index registry — regenerated.Verification (real toolchain, zig 0.16.0)
Removed
Template-only machinery that no longer applies now the repo is instantiated:
scripts/validate-template.sh,tests/e2e/template_instantiation_test.sh,benches/template_bench.sh. Confirmed no workflow, Justfile, or script invoked any of the three — no workflow surgery needed.Left untouched, on purpose
docs-template/,machine-readable-design/,docs/decisions/0000-template.adoc,docs/governance/CRG-AUDIT-TEMPLATE.adoc,docs/governance/TEMPLATE-STANDARDS-AUDIT.adoc,docs/RSR_OUTLINE.adoc, and the K9 component templates under.machine_readable/self-validating/— all intentional reusable seed kits or per-instance templates (their own text says "copy this file and customize"), not this repo's own identity. Also untouched:flake.nix,.tool-versions,.editorconfig,.gitattributes,.gitignore.Test plan
zig fmt --check src/interface/ffiexits 0zig buildexits 0zig build testexits 0, 4/4 tests passgrep -rE '\{\{[A-Za-z_]+\}\}'sweep confirms no unsubstituted identity placeholders remain outside the deliberately-generic seed kitsreposystem's registration🤖 Generated with Claude Code